Crate yasna [−] [src]
A library for reading and writing ASN.1 data.
Example
To serialize ASN.1 data, you can use construct_der
.
extern crate yasna; fn main() { let der = yasna::construct_der(|writer| { writer.write_sequence(|writer| { writer.next().write_i64(10); writer.next().write_bool(true); }) }); println!("(10, true) = {:?}", der); }
To deserialize ASN.1 data, you can use parse_ber
or parse_der
.
extern crate yasna; fn main() { let asn = yasna::parse_der(&[48, 6, 2, 1, 10, 1, 1, 255], |reader| { reader.read_sequence(|reader| { let i = try!(reader.next().read_i64()); let b = try!(reader.next().read_bool()); return Ok((i, b)); }) }).unwrap(); println!("{:?} = [48, 6, 2, 1, 10, 1, 1, 255]", asn); }
Modules
models |
Provides datatypes which correspond to ASN.1 types. |
tags |
Provides universal tag constants. |
Structs
ASN1Error | |
BERReader |
A reader object for BER/DER-encoded ASN.1 data. |
BERReaderSeq |
A reader object for a sequence of BER/DER-encoded ASN.1 data. |
BERReaderSet |
A reader object for a set of BER/DER-encoded ASN.1 data. |
DERWriter |
A writer object that accepts an ASN.1 value. |
DERWriterSeq |
A writer object that accepts ASN.1 values. |
DERWriterSet |
A writer object that accepts ASN.1 values. |
Tag |
An ASN.1 tag. |
Enums
ASN1ErrorKind | |
BERMode |
Used by |
TagClass |
An ASN.1 tag class, used in |
Traits
FromBER |
Functions
construct_der |
Constructs DER-encoded data as |
construct_der_seq |
Constructs DER-encoded sequence of data as |
parse_ber |
Parses BER-encoded data. |
parse_ber_general |
Parses DER/BER-encoded data. |
parse_der |
Parses DER-encoded data. |
Type Definitions
ASN1Result |